// Rollup plugins
//import { rollup } from "rollup";
import { uglify } from "rollup-plugin-uglify";


import babel from 'rollup-plugin-babel';
import resolve from 'rollup-plugin-node-resolve';
import commonjs from 'rollup-plugin-commonjs';
import json from 'rollup-plugin-json';
import replace from 'rollup-plugin-replace';
import serve from 'rollup-plugin-serve';
import livereload from 'rollup-plugin-livereload';

import postcss from 'rollup-plugin-postcss';
//import autoprefixer from 'autoprefixer';
import cssnano from 'cssnano';//压缩，减小输出CSS文件大小。相当于JavaScript中对应的UglifyJS。
import cssnext from 'postcss-cssnext';

/*import simplevars from 'postcss-simple-vars';// 可以使用Sass风格的变量(e.g. myColor: #fff;，color:myColor: #fff;，color:myColor;)而不是冗长的CSS语法(e.g. :root {--myColor: #fff}，color: var(--myColor))。
import nested from 'postcss-nested';//允许使用嵌套规则。实际上我不用它写嵌套规则；
// 这个插件集使得大多数现代CSS语法(通过最新的CSS标准)可用，编译后甚至可以在不支持新特性的旧浏览器中工作。*/
let isProd = process.env.NODE_ENV === 'production'
//let destFilePath = isProd ? './dist/js/main.min.js': './dist/js/main.js'
export default {
  input: './src/main.js',
  output: {
    file: './dist/js/main.min.js',
    format: 'iife'
  },
  plugins: [
    /*postcss({
      extensions: ['.css'],
      plugins: [
        simplevars(),
        nested(),
        cssnext({ warnForDuplicates: false, }),
        cssnano()
      ]
    }),*/
    postcss({
        plugins: [cssnext({ warnForDuplicates: false}), cssnano()],
        extract: 'dist/css/bundle.css' // 输出路径
    }),
    resolve({
      jsnext: true,  // 该属性是指定将Node包转换为ES2015模块
      // main 和 browser 属性将使插件决定将那些文件应用到bundle中
      main: true,  // Default: true 
      browser: true // Default: false
    }),
    commonjs(),
    json(),
    babel({
      exclude: 'node_modules/**'  // 排除node_modules 下的文件
    }),
    replace({
      ENV: JSON.stringify(process.env.NODE_ENV || 'development')
    }),
    (isProd?uglify():""),
    serve({
      open: true, // 是否打开浏览器
      contentBase: './', // 入口html的文件位置
      historyApiFallback: true, // Set to true to return index.html instead of 404
      host: 'localhost',
      port: 10001
    }),
    livereload()
  ]
}